// Thud - a dynamic object-oriented language
// Copyright (C) 2009,2010 David H. Hovemeyer <david.hovemeyer@gmail.com>

// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// 
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
// 
// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

/*
 * StringOutputStream.cpp
 *
 *  Created on: Dec 27, 2009
 *      Author: dhovemey
 */

#include <algorithm>
#include "util/StringOutputStream.h"

StringOutputStream::StringOutputStream(std::string &str)
	: m_str(str)
{

}

StringOutputStream::~StringOutputStream()
{

}

bool StringOutputStream::write(int b)
{
	m_str.append(1, char(b));
	return true;
}

size_t StringOutputStream::write(const void *buf, size_t n)
{
	const char *s = (const char *) buf;
	std::copy(s, s + n, std::back_inserter(m_str));
	return n;
}

bool StringOutputStream::atEOF()
{
	return false;
}

bool StringOutputStream::error()
{
	return false;
}

